package com.version1.diabeco.ui.reporte;


import java.util.Calendar;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import com.version1.diabeco.R;
import com.version1.diabeco.data.ajustes.perfilusuario.PerfilUsuarioDaoImpl;
import com.version1.diabeco.data.peso.PesoDaoImpl;
import com.version1.diabeco.model.ajustes.perfilusuario.PerfilUsuario;
import com.version1.diabeco.model.peso.Peso;
import com.version1.diabeco.ui.peso.PesoAdapter;



public class ActivityListaRegistroReportePeso extends Activity {

	public static final String INTENT_VALUE_DIA_DESDE = "diaDesde";
	public static final String INTENT_VALUE_MES_DESDE = "mesDesde";
	public static final String INTENT_VALUE_ANIO_DESDE = "anioDesde";

	public static final String INTENT_VALUE_DIA_HASTA = "diaHasta";
	public static final String INTENT_VALUE_MES_HASTA = "mesHasta";
	public static final String INTENT_VALUE_ANIO_HASTA = "anioHasta";
	
	//public static final String INTENT_VALUE_OBSERVACIONES = "observaciones";
	// 0 -  <item>Todas</item>
    // 1 -  <item>Enfermedad</item>
    // 2 -  <item>Stress</item>
    // 3 -  <item>De Vacaciones</item>
    // 4 -  <item>Sin Observaciones</item>
	
	
	//public static final String INTENT_VALUE_RANGO = "rango";
	//0 - Entre min y max
	//1 - min a rango
	//2 - max a rango
	//3 - All
	
	//public static final String INTENT_VALUE_PESO = "peso";
	//0 - max
	//1 - min
	//2 - todas
	
	
	public static final String INTENT_VALUE_PESO = "Peso";
	private List<Peso> peso;
	private ListView lista;
	PerfilUsuario objPerfilUsuario;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_lista_registros_reporte_peso);
		Bundle extras = getIntent().getExtras(); 
		int diaDesde;
	    int mesDesde;
		int anioDesde;
		int diaHasta;
		int mesHasta;
		int anioHasta;
		//long rango = 3;
		//long observaciones = 0;
		
		Calendar calendarDesde = Calendar.getInstance();
		Calendar calendarHasta = Calendar.getInstance();
		if(extras !=null) {
		    diaDesde = extras.getInt(INTENT_VALUE_DIA_DESDE);
		    mesDesde = extras.getInt(INTENT_VALUE_MES_DESDE);
		    anioDesde = extras.getInt(INTENT_VALUE_ANIO_DESDE);
			calendarDesde.set(anioDesde, mesDesde-1, diaDesde);
		    
		    diaHasta = extras.getInt(INTENT_VALUE_DIA_HASTA);
		    mesHasta = extras.getInt(INTENT_VALUE_MES_HASTA);
		    anioHasta = extras.getInt(INTENT_VALUE_ANIO_HASTA);
		    calendarHasta.set(anioHasta, mesHasta-1, diaHasta);
		    
		    //rango = extras.getLong(INTENT_VALUE_RANGO);
		    //observaciones = extras.getLong (INTENT_VALUE_OBSERVACIONES);
		    //peso = extras.getLong (INTENT_VALUE_PESO);
		    
		} 
		
		//Elementos de la pantalla
		lista = (ListView) findViewById(R.id.listViewReportePeso);
		
		//Agregar parametro extra a esta funcion para pasar el long con el codigo de observaciones
		this.inicializarListaPeso(calendarDesde, calendarHasta/*, rango, observaciones*/);
	}


	private void inicializarListaPeso(Calendar fechaDesde, Calendar fechaHasta) {
		//this.setGlucosa(GlucosaDaoImpl.getInstance(this).selectAll());
		
		Float pesoUser;
		objPerfilUsuario = PerfilUsuarioDaoImpl.getInstance(this).selectUsuarioActivo();
		if (objPerfilUsuario!=null){
				pesoUser = objPerfilUsuario.getPeso();
				if (pesoUser==null)
					pesoUser = Float.valueOf(70);
		
		}else{
			pesoUser = Float.valueOf(70);
		
		}
		//Agregar ese parametro observaciones en este metodo
		this.setPeso(PesoDaoImpl.getInstance(this).selectBetweenDatesAndValues(fechaDesde, fechaHasta/*, umbralBajo, umbralAlto, rango, observaciones*/
				));

		List<Peso> peso = this.getPeso();

		if (!peso.isEmpty()) {

			/*ArrayAdapter genericAdapter = new ReporteAdapterPeso(this, R.layout.activity_reporte_fila_peso, peso);
			
			lista.setAdapter(genericAdapter);*/
			
			ArrayAdapter<Peso> pesoAdapter = new PesoAdapter(this, R.layout.activity_reporte_fila_peso, peso);
			
			lista.setAdapter(pesoAdapter);
	
		}
		else
		{
			Toast.makeText(this, "No Existen Registros para Mostrar", Toast.LENGTH_LONG).show();
		}
		
	}


	@Override
	public void onResume() {
		super.onResume(); // Always call the superclass method first
		/*String fechaDesde = "" ;
		String fechaHasta = "";
		Bundle extras = getIntent().getExtras(); 
		if(extras !=null) {
		    fechaDesde = extras.getString(INTENT_VALUE_FECHA_DESDE);
		    fechaHasta = extras.getString(INTENT_VALUE_FECHA_HASTA);
		}
		
		System.out.println("FECHA DESDE RECIBIDA: " + fechaDesde);
		System.out.println("FECHA HASTA RECIBIDA: " + fechaHasta);


		this.inicializarListaGlucosa(fechaDesde, fechaHasta);
		//this.inicializarListaGlucosa();*/
	}

	
	



	
	public List<Peso> getPeso() {
		return peso;
	}

	public void setPeso(List<Peso> peso) {
		this.peso = peso;
	}


//	@Override
//	public boolean onCreateOptionsMenu(Menu menu) {
//		// Inflate the menu; this adds items to the action bar if it is present.
//		getMenuInflater().inflate(R.menu.activity_peso, menu);
//		return true;
//	}

	


}
